Implementing Framework Crosscutting Extensions with EJPs and AspectJ

نویسندگان

  • Uirá Kulesza
  • Roberta Coelho
  • Alberto Costa Neto
  • Alessandro Garcia
  • Carlos Lucena
  • Arndt von Staa
  • Paulo Borba
چکیده

In a previous work, we proposed a framework extension approach based on the use of a new concept, called Extension Join Points (EJPs). EJPs enable the framework systematic extension by means of variability and integration aspects. In this paper, we show how EJPs can be implemented using the mechanisms of the AspectJ language. To evaluate the usefulness of the EJPs in the framework extension process, we have used them in the development of three OO frameworks from different domains. As a result of our case studies, we present: (i) an initial categorization of different kinds of contracts between frameworks, EJPs and aspects which can be implemented in AspectJ; and (ii) a set of lessons learned when specifying the EJPs. Resumo. Uma abordagem para extensão de frameworks baseada em um novo conceito, denominado Extension Join Points (EJPs), tem sido proposta anteriormente. EJPs possibilitam a extensão sistemática de frameworks, através do uso de aspectos de variabilidade e integração. Neste artigo, nós mostramos como os EJPs podem ser implementados usando os mecanismos da linguagem AspectJ. Para avaliar a utilidade dos EJPs no processo de extensão de frameworks, nós os utilizamos no desenvolvimento de 3 frameworks OO de diferentes domínios. Como um resultado de nossos estudos de caso, nós apresentamos: (i) uma categorização inicial de diferentes tipos de contratos entre frameworks, EJPs e aspectos, os quais podem ser implementados em AspectJ; e (ii) um conjunto de lições aprendidas quando especificando os EJPs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reducing the Complexity of AspectJ Mechanisms for Recurring Extensions

Aspect-Oriented Programming (AOP) aims at modularizing crosscutting concerns. AspectJ is a popular AOP language extension for Java that includes numerous sophisticated mechanisms for implementing crosscutting concerns modularly in one aspect. The language allows to express complex extensions, but at the same time the complexity of some of those mechanisms hamper the writing of simple and recurr...

متن کامل

How AspectJ is Used: An Analysis of Eleven AspectJ Programs

While it is well-known that crosscutting concerns occur in many software projects, little is known on how aspect-oriented programming, and in particular AspectJ, have been used. In this paper, we analyze eleven AspectJ programs by different authors to answer the questions: which mechanisms are used, to what extent, and for what purpose. We found the code of these programs to be on average 86% o...

متن کامل

Implementing Known Concepts in AspectJ

AspectJ is a so-called general-purpose aspect-language which tries to solve the problem of crosscutting code. An often uttered criticism of AspectJ is that there is no underlying concept in the implemented language features and that those features are rather arbitrary chosen instead of being based on any theoretical foundations. This paper shows beyond the the context of crosscutting and tangli...

متن کامل

Implementing concern - specific languages with abc Seminar on Aspect - oriented programming

In this work first we introduce the notion of concern specific languages (CSL) [Bod05] which are to a specific crosscutting concern, what domain specific languages are to a specific domain. Implementing such CSLs was a tedious task in the past since no extensible frameworks for implementing crosscutting concerns existed. Ostermann and Mezini [OM05] proposed a Prolog based implementation of aspe...

متن کامل

An Overview of AspectJ

AspectJTM is a simple and practical aspect-oriented extension to JavaTM. With just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns. In AspectJ’s dynamic join point model, join points are well-defined points in the execution of the program; pointcuts are collections of join points; advice are special method-like constructs that can be...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006